The present invention relates to the integration of business applications in an integrated business solutions computing environment. More specifically, the present invention relates to maintaining the order of messages and documents when processed or transformed by an enterprise server.
The current business environment is very different from what it was just a few years ago. Today's organizations embrace the global marketplace, and this dictates a need to be able to efficiently operate at all times. Customers are now more sophisticated which translates into an accelerated pace of business and decision-making processes. Further, business relationships have become highly dynamic, and customers expect businesses to adapt quickly.
Technical and operational challenges abound as well. There is a need to support multiple applications on a variety of platforms, and to integrate with companies using the Internet, extranets, business to business (B2B) exchanges, and other resources. Also, to effectively compete in today's market, there is a need to build new solutions on “Internet time,” utilizing open Internet standards and technology to assure maximum interoperability.
Businesses have typically used a variety of mechanisms to control and analyze business operations such as accounting, payroll, human resources, employee tracking, customer relations tracking, etc. Tools which provide these functions are often implemented using computer software. For example, a software package may manage business accounting, another software package might be responsible for receiving new orders, yet another software package will track warehouse inventory and still another package may handle order fulfillment and shipment. In another example, a business software package operated by one business will need to exchange data with a software package operated by another business to allow a business-to-business transaction to occur.
When business tools are implemented in software, it is not unusual for proprietary software packages to be responsible for each individual business task. However, this implementation is cumbersome and requires the same data to be entered in differing formats among the various business applications. In order to improve efficiency, integration applications have been developed which are used to integrate various elements of one business application with elements of another business application.
For example, if a software package, which is used to obtain new orders, includes data fields (or “entities”) referred to as CustomerNameLast and CustomerNameFirst, it is a relatively straightforward process to map those entries to an accounting software program having the data fields BillingAddressFirst and BillingAddressLast. In such an integration system, the relationship between entities in one system (i.e., computer system or application) and entities in another system can be stored in tables. A system administrator can configure entity mapping between the systems by selecting between the various entities of the two systems.
When an integration system actually executes the transaction between the source application and the destination application as defined by the mapping process, several steps occur. First the source application creates a document or message, which contains data stored as entities, and transmits or publishes that document or message to the integration application. The integration application transforms the document or message according to the transformation processes defined during the mapping. Then the integration application posts the transformed message to the destination application.
Historically, in integration systems, entities in one business application have been linked to entities in a second business application by requiring each system to maintain a special field to store the unique identifiers of the other business application. This approach to maintaining and managing relationships between applications presents many problems. First the developer of the application needs the foresight to anticipate every possible field characteristic that can appear in another application program. Second this additional field restricts the number of associated entities for each entity to one. Third this approach requires the application to have additional logic programmed in to allow the retrieval of that record by that identifier.